#pragma once

#define LIST(...) {__VA_ARGS__}

// TEST_DATA(q_shape,
//           k_shape,
//           v_shape,
//           attention_mask_shape,
//           output_shape,
//           is_causal,
//           is_attention_mask_bool,
//           q_data,
//           k_data,
//           v_data,
//           attention_mask_data,
//           expected_output_data,
//           description)

// NOTE: expected output were generated using torch.nn.functional.scaled_dot_product_attention implementation.

TEST_DATA(LIST(1, 32, 8),
          LIST(1, 16, 8),
          LIST(1, 16, 4),
          LIST(),
          LIST(1, 32, 4),
          false,
          false,
          LIST(0.421005,
               0.023465,
               -0.394774,
               0.974785,
               0.512418,
               0.219203,
               -0.338684,
               1.122448,
               -0.128486,
               -0.484502,
               0.56865,
               1.332561,
               0.222876,
               0.093504,
               0.89355,
               -0.659941,
               1.187668,
               -2.086986,
               -0.42915,
               -0.198203,
               1.385841,
               0.052231,
               0.587976,
               -0.684267,
               -0.045731,
               0.629634,
               1.78197,
               -1.381788,
               0.812565,
               0.522027,
               0.013688,
               -0.070836,
               1.131118,
               0.147256,
               -0.452005,
               0.263287,
               0.489187,
               -0.710666,
               0.531863,
               -0.996062,
               0.188195,
               -0.022838,
               -0.961315,
               0.174546,
               -2.681746,
               -0.311997,
               -0.007598,
               0.152766,
               -0.700153,
               0.785022,
               0.449904,
               -0.437027,
               0.846442,
               -2.708081,
               -0.357738,
               1.859077,
               -1.122008,
               0.797016,
               -0.205318,
               0.620443,
               -1.210487,
               -0.100233,
               -0.644188,
               1.252426,
               -1.503346,
               1.685813,
               -0.655548,
               0.148169,
               0.98681,
               -1.806409,
               -0.789457,
               0.934387,
               0.819341,
               -0.359637,
               -0.394646,
               -0.040578,
               1.10817,
               1.745871,
               -0.706232,
               2.154361,
               -0.417549,
               0.724758,
               -1.090765,
               0.9193,
               0.535271,
               -0.979016,
               0.870831,
               -0.405604,
               -0.192899,
               0.242223,
               -2.103053,
               -0.234349,
               -1.273937,
               -0.334684,
               -1.239732,
               1.185672,
               1.292743,
               0.741054,
               -0.700485,
               -0.252933,
               -0.760226,
               0.68806,
               0.761746,
               0.065581,
               -0.189028,
               0.253604,
               0.17645,
               0.993091,
               0.771911,
               -0.45738,
               -0.123291,
               -0.150833,
               -1.207279,
               -1.033516,
               -0.975503,
               0.626698,
               0.50241,
               -1.377113,
               -0.788385,
               0.043618,
               -0.945737,
               0.093409,
               -0.43187,
               0.748239,
               1.084854,
               1.147015,
               0.171417,
               -0.231462,
               -1.082049,
               0.213656,
               -0.888956,
               0.489294,
               -0.722142,
               0.920915,
               -1.327819,
               -1.384117,
               -1.432893,
               -0.535934,
               0.48227,
               0.220006,
               -0.589304,
               -1.305996,
               -1.089244,
               1.762965,
               -1.320682,
               -0.014023,
               -0.26418,
               -1.665839,
               2.005492,
               0.566283,
               0.553813,
               -0.960131,
               -0.965173,
               -0.512779,
               0.814464,
               -0.662501,
               -2.681507,
               0.164813,
               -0.344629,
               -0.353064,
               0.869497,
               0.558342,
               0.504291,
               -0.331423,
               0.383466,
               -1.433365,
               -0.47628,
               0.703471,
               -0.851835,
               -1.458019,
               1.99797,
               1.234475,
               1.738404,
               -0.198748,
               0.229233,
               -0.468942,
               0.274935,
               -0.318531,
               0.395246,
               -0.463232,
               -0.0943,
               0.507692,
               -0.51417,
               -0.166324,
               -0.853083,
               0.096419,
               0.103585,
               -0.323117,
               -1.863742,
               -1.616867,
               -0.65718,
               2.499854,
               -0.282102,
               -0.990155,
               1.102401,
               1.342318,
               0.666025,
               -1.808015,
               0.555367,
               0.165921,
               -0.43009,
               -0.521742,
               0.994636,
               1.097344,
               0.381748,
               0.498743,
               0.057956,
               0.254353,
               -1.03177,
               0.13464,
               0.5135,
               0.449665,
               1.099591,
               -0.314915,
               -0.433248,
               -1.51002,
               -2.825565,
               -0.709136,
               0.22957,
               -0.60729,
               0.635989,
               -1.032047,
               0.032745,
               1.392744,
               -0.133622,
               0.692369,
               -0.420028,
               -0.483128,
               1.624416,
               1.951544,
               0.33301,
               -0.215358,
               -0.028016,
               -3.021593,
               0.119477,
               -0.560832,
               -0.293329,
               -2.270134,
               0.576507,
               -0.956194,
               0.948911,
               0.251268,
               1.487315,
               -1.638263,
               0.357951,
               -0.413316,
               0.714832,
               -0.739905,
               -0.153973,
               -1.176242,
               0.170329,
               -0.434688,
               0.747862,
               0.120337,
               -0.481574,
               1.136657),

          LIST(-0.593591,
               1.859548,
               0.249161,
               0.676157,
               0.859662,
               0.392747,
               -2.837827,
               -1.161998,
               -0.213121,
               -0.398741,
               0.893462,
               -2.473034,
               1.369548,
               -0.816652,
               0.446606,
               -1.168457,
               -0.935529,
               -1.044749,
               0.035797,
               -0.484173,
               0.566315,
               1.794253,
               -0.248206,
               0.34702,
               -0.425677,
               -0.249695,
               -0.51747,
               -1.522292,
               -1.600277,
               0.010729,
               0.760091,
               -0.080101,
               -0.477076,
               -1.59898,
               1.168583,
               0.002085,
               0.870672,
               -0.125717,
               0.559368,
               -0.60516,
               -0.344497,
               1.16437,
               -0.333677,
               0.507007,
               0.595549,
               -1.83513,
               -0.225581,
               -0.35965,
               0.774579,
               -0.877114,
               0.700943,
               1.086502,
               -0.342075,
               -1.543626,
               -1.342155,
               0.446591,
               0.216291,
               -1.071532,
               -0.509154,
               0.040005,
               0.322026,
               -0.296395,
               0.646083,
               0.320446,
               0.33697,
               1.80367,
               -0.158532,
               1.319875,
               -1.290043,
               -0.661309,
               1.088699,
               0.285606,
               -1.988428,
               -0.39131,
               1.31822,
               1.266902,
               -0.317389,
               1.194729,
               1.98206,
               -0.706244,
               1.566435,
               1.419536,
               -0.577035,
               -2.038813,
               0.437548,
               -0.442533,
               -0.484523,
               0.44865,
               -0.592259,
               0.987489,
               0.368031,
               -1.446288,
               -0.808057,
               0.428636,
               0.667097,
               0.505889,
               1.299293,
               1.374393,
               0.661116,
               0.306355,
               -1.032111,
               0.255774,
               -3.257905,
               -0.065164,
               -1.712093,
               -2.218556,
               -0.735969,
               -0.926222,
               -0.416535,
               -1.605775,
               0.461626,
               0.444886,
               0.994124,
               0.376888,
               -0.752383,
               -1.579577,
               1.539094,
               -1.349447,
               -0.906688,
               -0.215624,
               0.251347,
               0.723296,
               0.122108,
               0.295733,
               -0.045741,
               -0.580241,
               0.331587,
               1.082048),

          LIST(0.473876,
               0.230664,
               0.267298,
               0.103135,
               0.181214,
               0.406048,
               1.259755,
               -1.185046,
               -2.166379,
               -1.596702,
               -0.39181,
               1.1437,
               0.135151,
               -0.741832,
               -0.111727,
               -1.806395,
               -1.925569,
               -0.573528,
               -2.421664,
               0.155526,
               -0.865253,
               -0.72568,
               0.263178,
               0.377773,
               0.443862,
               -0.076033,
               1.137767,
               -0.515984,
               -0.209694,
               0.386404,
               -1.168237,
               0.796385,
               -0.922321,
               -0.221558,
               0.614164,
               -0.040158,
               -1.211582,
               -0.068861,
               1.510065,
               -0.926674,
               1.26152,
               -0.99538,
               -0.260887,
               0.475657,
               -0.580918,
               0.0006,
               0.125315,
               0.740747,
               0.277934,
               0.00975,
               0.107055,
               -0.581133,
               -1.070566,
               1.037663,
               0.373189,
               1.304875,
               -1.025931,
               1.433475,
               -0.976563,
               1.991798,
               0.038781,
               0.384018,
               0.806663,
               -0.776948),
          LIST(),

          LIST(-0.353709,
               -0.074231,
               0.105958,
               0.103361,
               -0.874412,
               -0.130653,
               0.293177,
               -0.202215,
               -0.746648,
               0.078181,
               -0.408272,
               0.308451,
               -0.288986,
               -0.035773,
               0.206605,
               -0.101585,
               -0.365228,
               0.031298,
               -0.007984,
               0.213135,
               -0.3253,
               -0.15034,
               0.222089,
               -0.274706,
               -0.381302,
               0.129838,
               0.161698,
               0.361009,
               -0.360315,
               -0.084764,
               0.303783,
               -0.06805,
               -0.341233,
               -0.016025,
               0.158206,
               0.319436,
               -0.579598,
               -0.386254,
               -0.156038,
               0.397128,
               -0.583619,
               -0.070997,
               0.202518,
               0.151165,
               -0.177376,
               -0.032747,
               0.088899,
               0.083503,
               -0.198178,
               -0.222517,
               0.081854,
               0.001791,
               -0.448159,
               -0.049159,
               0.142549,
               0.07363,
               -0.660492,
               0.285086,
               0.114371,
               0.516486,
               -0.823223,
               -0.238146,
               0.166327,
               0.071748,
               -0.153953,
               -0.051779,
               0.182246,
               -0.014829,
               -0.480805,
               0.189843,
               0.295622,
               0.262282,
               -0.4639,
               0.091838,
               0.303309,
               -0.139876,
               -0.464483,
               -0.144721,
               0.21283,
               -0.309852,
               -0.127137,
               0.042333,
               0.075449,
               0.220707,
               -1.126201,
               -0.207343,
               -0.250491,
               -0.134581,
               -0.386199,
               -0.113373,
               0.007587,
               0.054589,
               -0.359018,
               0.122456,
               0.324269,
               0.107375,
               -0.648241,
               0.010124,
               0.097738,
               0.055944,
               -0.808398,
               -0.178982,
               0.183889,
               -0.091267,
               -0.446793,
               -0.004204,
               0.138438,
               0.011394,
               -0.914105,
               0.417448,
               0.214762,
               0.633307,
               -0.624983,
               -0.295893,
               0.002612,
               0.259261,
               -0.854049,
               0.581066,
               0.092587,
               0.670907,
               -0.139566,
               0.074441,
               0.275647,
               -0.216602,
               -0.680033,
               -0.03244,
               -0.118288,
               0.348928),
          "test_case_0");

TEST_DATA(LIST(1, 32, 8),
          LIST(1, 16, 8),
          LIST(1, 16, 4),
          LIST(1, 32, 16),
          LIST(1, 32, 4),
          false,
          false,
          LIST(0.421005,
               0.023465,
               -0.394774,
               0.974785,
               0.512418,
               0.219203,
               -0.338684,
               1.122448,
               -0.128486,
               -0.484502,
               0.56865,
               1.332561,
               0.222876,
               0.093504,
               0.89355,
               -0.659941,
               1.187668,
               -2.086986,
               -0.42915,
               -0.198203,
               1.385841,
               0.052231,
               0.587976,
               -0.684267,
               -0.045731,
               0.629634,
               1.78197,
               -1.381788,
               0.812565,
               0.522027,
               0.013688,
               -0.070836,
               1.131118,
               0.147256,
               -0.452005,
               0.263287,
               0.489187,
               -0.710666,
               0.531863,
               -0.996062,
               0.188195,
               -0.022838,
               -0.961315,
               0.174546,
               -2.681746,
               -0.311997,
               -0.007598,
               0.152766,
               -0.700153,
               0.785022,
               0.449904,
               -0.437027,
               0.846442,
               -2.708081,
               -0.357738,
               1.859077,
               -1.122008,
               0.797016,
               -0.205318,
               0.620443,
               -1.210487,
               -0.100233,
               -0.644188,
               1.252426,
               -1.503346,
               1.685813,
               -0.655548,
               0.148169,
               0.98681,
               -1.806409,
               -0.789457,
               0.934387,
               0.819341,
               -0.359637,
               -0.394646,
               -0.040578,
               1.10817,
               1.745871,
               -0.706232,
               2.154361,
               -0.417549,
               0.724758,
               -1.090765,
               0.9193,
               0.535271,
               -0.979016,
               0.870831,
               -0.405604,
               -0.192899,
               0.242223,
               -2.103053,
               -0.234349,
               -1.273937,
               -0.334684,
               -1.239732,
               1.185672,
               1.292743,
               0.741054,
               -0.700485,
               -0.252933,
               -0.760226,
               0.68806,
               0.761746,
               0.065581,
               -0.189028,
               0.253604,
               0.17645,
               0.993091,
               0.771911,
               -0.45738,
               -0.123291,
               -0.150833,
               -1.207279,
               -1.033516,
               -0.975503,
               0.626698,
               0.50241,
               -1.377113,
               -0.788385,
               0.043618,
               -0.945737,
               0.093409,
               -0.43187,
               0.748239,
               1.084854,
               1.147015,
               0.171417,
               -0.231462,
               -1.082049,
               0.213656,
               -0.888956,
               0.489294,
               -0.722142,
               0.920915,
               -1.327819,
               -1.384117,
               -1.432893,
               -0.535934,
               0.48227,
               0.220006,
               -0.589304,
               -1.305996,
               -1.089244,
               1.762965,
               -1.320682,
               -0.014023,
               -0.26418,
               -1.665839,
               2.005492,
               0.566283,
               0.553813,
               -0.960131,
               -0.965173,
               -0.512779,
               0.814464,
               -0.662501,
               -2.681507,
               0.164813,
               -0.344629,
               -0.353064,
               0.869497,
               0.558342,
               0.504291,
               -0.331423,
               0.383466,
               -1.433365,
               -0.47628,
               0.703471,
               -0.851835,
               -1.458019,
               1.99797,
               1.234475,
               1.738404,
               -0.198748,
               0.229233,
               -0.468942,
               0.274935,
               -0.318531,
               0.395246,
               -0.463232,
               -0.0943,
               0.507692,
               -0.51417,
               -0.166324,
               -0.853083,
               0.096419,
               0.103585,
               -0.323117,
               -1.863742,
               -1.616867,
               -0.65718,
               2.499854,
               -0.282102,
               -0.990155,
               1.102401,
               1.342318,
               0.666025,
               -1.808015,
               0.555367,
               0.165921,
               -0.43009,
               -0.521742,
               0.994636,
               1.097344,
               0.381748,
               0.498743,
               0.057956,
               0.254353,
               -1.03177,
               0.13464,
               0.5135,
               0.449665,
               1.099591,
               -0.314915,
               -0.433248,
               -1.51002,
               -2.825565,
               -0.709136,
               0.22957,
               -0.60729,
               0.635989,
               -1.032047,
               0.032745,
               1.392744,
               -0.133622,
               0.692369,
               -0.420028,
               -0.483128,
               1.624416,
               1.951544,
               0.33301,
               -0.215358,
               -0.028016,
               -3.021593,
               0.119477,
               -0.560832,
               -0.293329,
               -2.270134,
               0.576507,
               -0.956194,
               0.948911,
               0.251268,
               1.487315,
               -1.638263,
               0.357951,
               -0.413316,
               0.714832,
               -0.739905,
               -0.153973,
               -1.176242,
               0.170329,
               -0.434688,
               0.747862,
               0.120337,
               -0.481574,
               1.136657),

          LIST(-0.593591,
               1.859548,
               0.249161,
               0.676157,
               0.859662,
               0.392747,
               -2.837827,
               -1.161998,
               -0.213121,
               -0.398741,
               0.893462,
               -2.473034,
               1.369548,
               -0.816652,
               0.446606,
               -1.168457,
               -0.935529,
               -1.044749,
               0.035797,
               -0.484173,
               0.566315,
               1.794253,
               -0.248206,
               0.34702,
               -0.425677,
               -0.249695,
               -0.51747,
               -1.522292,
               -1.600277,
               0.010729,
               0.760091,
               -0.080101,
               -0.477076,
               -1.59898,
               1.168583,
               0.002085,
               0.870672,
               -0.125717,
               0.559368,
               -0.60516,
               -0.344497,
               1.16437,
               -0.333677,
               0.507007,
               0.595549,
               -1.83513,
               -0.225581,
               -0.35965,
               0.774579,
               -0.877114,
               0.700943,
               1.086502,
               -0.342075,
               -1.543626,
               -1.342155,
               0.446591,
               0.216291,
               -1.071532,
               -0.509154,
               0.040005,
               0.322026,
               -0.296395,
               0.646083,
               0.320446,
               0.33697,
               1.80367,
               -0.158532,
               1.319875,
               -1.290043,
               -0.661309,
               1.088699,
               0.285606,
               -1.988428,
               -0.39131,
               1.31822,
               1.266902,
               -0.317389,
               1.194729,
               1.98206,
               -0.706244,
               1.566435,
               1.419536,
               -0.577035,
               -2.038813,
               0.437548,
               -0.442533,
               -0.484523,
               0.44865,
               -0.592259,
               0.987489,
               0.368031,
               -1.446288,
               -0.808057,
               0.428636,
               0.667097,
               0.505889,
               1.299293,
               1.374393,
               0.661116,
               0.306355,
               -1.032111,
               0.255774,
               -3.257905,
               -0.065164,
               -1.712093,
               -2.218556,
               -0.735969,
               -0.926222,
               -0.416535,
               -1.605775,
               0.461626,
               0.444886,
               0.994124,
               0.376888,
               -0.752383,
               -1.579577,
               1.539094,
               -1.349447,
               -0.906688,
               -0.215624,
               0.251347,
               0.723296,
               0.122108,
               0.295733,
               -0.045741,
               -0.580241,
               0.331587,
               1.082048),

          LIST(0.473876,
               0.230664,
               0.267298,
               0.103135,
               0.181214,
               0.406048,
               1.259755,
               -1.185046,
               -2.166379,
               -1.596702,
               -0.39181,
               1.1437,
               0.135151,
               -0.741832,
               -0.111727,
               -1.806395,
               -1.925569,
               -0.573528,
               -2.421664,
               0.155526,
               -0.865253,
               -0.72568,
               0.263178,
               0.377773,
               0.443862,
               -0.076033,
               1.137767,
               -0.515984,
               -0.209694,
               0.386404,
               -1.168237,
               0.796385,
               -0.922321,
               -0.221558,
               0.614164,
               -0.040158,
               -1.211582,
               -0.068861,
               1.510065,
               -0.926674,
               1.26152,
               -0.99538,
               -0.260887,
               0.475657,
               -0.580918,
               0.0006,
               0.125315,
               0.740747,
               0.277934,
               0.00975,
               0.107055,
               -0.581133,
               -1.070566,
               1.037663,
               0.373189,
               1.304875,
               -1.025931,
               1.433475,
               -0.976563,
               1.991798,
               0.038781,
               0.384018,
               0.806663,
               -0.776948),

          LIST(1.379879,
               1.175937,
               0.336587,
               -0.10363,
               0.840433,
               -0.841822,
               -0.927159,
               -0.8826,
               -1.175637,
               0.841034,
               1.813048,
               0.510312,
               -0.446955,
               0.05884,
               0.873361,
               0.173936,
               1.864106,
               1.97434,
               0.136933,
               0.125996,
               0.694331,
               -0.058914,
               -1.70357,
               -0.862171,
               -2.270788,
               1.78583,
               0.046916,
               -0.060745,
               -1.157244,
               -0.040764,
               -1.29,
               -1.729559,
               -0.024036,
               -0.957502,
               -0.065361,
               1.259783,
               -1.586219,
               -0.773324,
               0.104026,
               -1.608258,
               -1.029088,
               -1.111893,
               -0.795348,
               1.376287,
               1.175728,
               0.295585,
               -0.559497,
               0.816903,
               0.490996,
               -1.004804,
               0.316465,
               -1.374675,
               2.225095,
               -0.454799,
               1.307002,
               -1.182276,
               -0.363367,
               -0.364746,
               -2.288659,
               1.429768,
               -0.558253,
               -0.345671,
               -1.231811,
               -1.144122,
               0.669048,
               1.253411,
               0.964786,
               -0.868919,
               1.369943,
               -0.997654,
               -0.170686,
               -0.584766,
               0.695652,
               -1.477151,
               1.02304,
               0.985546,
               0.359905,
               0.739994,
               0.900393,
               -0.415888,
               1.027304,
               1.642111,
               -0.256148,
               1.705449,
               0.742366,
               -0.416792,
               0.343785,
               -2.173308,
               0.642656,
               0.499735,
               0.062629,
               0.288781,
               -0.624428,
               0.363097,
               1.337925,
               -0.285583,
               2.525335,
               0.959702,
               0.225902,
               -2.084965,
               -0.014898,
               0.885027,
               -0.47383,
               -0.179998,
               0.886109,
               0.570699,
               0.731007,
               0.018857,
               -0.523009,
               0.676521,
               -1.619693,
               -0.039683,
               2.40891,
               -1.140949,
               -0.809734,
               1.249487,
               0.395291,
               -0.040929,
               1.436312,
               0.254105,
               1.390493,
               0.178458,
               0.601491,
               -0.386157,
               1.450433,
               -2.261711,
               1.784683,
               -0.2757,
               -0.543906,
               -0.182736,
               -0.300199,
               1.063606,
               -0.219486,
               1.222885,
               0.215142,
               0.723555,
               -0.70155,
               1.141434,
               0.818791,
               -0.229134,
               -0.446136,
               0.676219,
               -2.81724,
               -0.997954,
               -0.439221,
               0.314049,
               1.440436,
               0.84844,
               1.31731,
               0.846217,
               1.068469,
               0.654644,
               -1.03753,
               0.287643,
               2.043062,
               -0.379139,
               -1.328668,
               0.045873,
               0.407716,
               -0.908022,
               -0.527893,
               -1.6525,
               -2.140695,
               1.461692,
               -0.136412,
               1.910536,
               -1.033257,
               -1.244956,
               -0.187394,
               -0.73124,
               1.40393,
               -0.69688,
               0.189305,
               -0.535513,
               0.118834,
               -0.606871,
               -0.627851,
               -0.586313,
               0.989582,
               0.8274,
               0.150993,
               -0.206132,
               -0.079015,
               -0.152751,
               -0.221602,
               -0.053469,
               -0.007423,
               -0.626135,
               -0.362088,
               0.653484,
               1.65072,
               -0.212789,
               -0.590367,
               0.256564,
               -0.880581,
               0.304221,
               1.264364,
               -2.332636,
               -0.811072,
               1.587373,
               -1.701726,
               0.568617,
               0.11007,
               1.671443,
               0.067642,
               -0.197029,
               -0.479122,
               -0.671735,
               -0.180798,
               0.188966,
               -0.492004,
               -0.752294,
               -0.193513,
               0.044766,
               0.550427,
               0.507952,
               -0.519835,
               -0.732491,
               -1.245198,
               -0.570378,
               -1.330052,
               -0.367631,
               0.820434,
               -0.095065,
               -0.057456,
               0.641705,
               1.816095,
               -0.968649,
               -0.019481,
               0.161527,
               0.59692,
               -0.984294,
               -0.028295,
               0.551226,
               -1.761453,
               -1.238583,
               0.219222,
               -1.036977,
               0.604598,
               -0.814539,
               -0.708069,
               0.881866,
               -0.688482,
               -0.965745,
               0.095615,
               -1.052471,
               0.547147,
               0.02881,
               1.284175,
               0.209008,
               -0.167884,
               0.449842,
               0.297009,
               -0.396592,
               0.065111,
               -0.376004,
               0.885518,
               -0.197528,
               1.094456,
               -0.601968,
               -0.442131,
               -1.159578,
               0.532128,
               0.020932,
               3.001178,
               -0.460484,
               -1.397502,
               1.83208,
               0.187805,
               -0.23562,
               0.838223,
               0.140732,
               -0.057661,
               -1.013909,
               0.124978,
               -0.214147,
               0.75221,
               -0.151406,
               0.739292,
               -0.934012,
               1.263142,
               0.669529,
               -0.788527,
               -0.265766,
               0.197106,
               -0.743707,
               0.481133,
               0.043761,
               0.389874,
               -0.494359,
               -0.259289,
               1.164965,
               1.277088,
               0.051879,
               0.127648,
               -0.163788,
               1.015134,
               -1.760256,
               -1.665681,
               0.868838,
               -0.128328,
               1.883712,
               -0.290864,
               0.215321,
               -0.504164,
               0.365189,
               -0.393319,
               -0.14162,
               -1.465254,
               -0.067447,
               -0.367196,
               1.558587,
               -0.099484,
               -0.481428,
               1.678571,
               -2.114676,
               0.464851,
               0.229711,
               0.317546,
               0.43636,
               0.0409,
               0.077869,
               1.408737,
               -1.260114,
               0.136004,
               -0.9457,
               0.091768,
               0.224163,
               0.647066,
               1.019154,
               0.628868,
               -0.508198,
               0.307728,
               0.103725,
               -0.067719,
               0.682923,
               -1.1048,
               -1.053823,
               -0.959663,
               0.639096,
               -1.224353,
               -1.220632,
               1.967998,
               0.148358,
               0.523769,
               -0.308843,
               -0.849387,
               -0.030058,
               -1.177523,
               0.679043,
               0.777809,
               1.11273,
               0.352417,
               -3.087523,
               0.847945,
               0.288509,
               -0.615618,
               -0.92017,
               -0.409843,
               -0.865585,
               -0.193532,
               -1.06601,
               -0.083865,
               -0.268913,
               0.959423,
               -0.11591,
               -0.015457,
               -0.404683,
               -0.466523,
               -0.001316,
               -0.086794,
               -1.26243,
               1.060387,
               -0.456323,
               -0.581024,
               1.240103,
               -0.744158,
               0.447459,
               0.07531,
               0.318939,
               -0.988132,
               -0.763545,
               1.899572,
               0.170358,
               -1.031292,
               0.222966,
               -1.314343,
               0.306081,
               -0.643629,
               0.501331,
               -1.744817,
               0.387248,
               2.146114,
               1.718246,
               0.130584,
               0.464741,
               -0.711587,
               1.094991,
               0.245252,
               -0.559175,
               0.521254,
               0.646981,
               -1.49254,
               0.356029,
               0.967818,
               -1.066056,
               -0.477828,
               -1.352633,
               0.105447,
               -1.494098,
               0.310285,
               0.013237,
               0.41057,
               -0.031352,
               -0.285622,
               -0.187492,
               0.864737,
               0.128305,
               -0.87878,
               0.236555,
               0.395837,
               1.548257,
               -0.886905,
               -0.054923,
               0.593815,
               0.908347,
               1.046968,
               -1.189381,
               -1.332375,
               -0.093362,
               1.054859,
               0.930966,
               1.240918,
               0.411876,
               1.476291,
               -0.598442,
               -2.064574,
               0.94047,
               -2.713606,
               0.520082,
               1.709873,
               2.493311,
               0.918902,
               -2.126874,
               -0.306373,
               -0.08538,
               0.570416,
               0.145999,
               -0.785366,
               1.717644,
               0.582324,
               -1.317806,
               -0.868038,
               -0.931073,
               -0.420803,
               -0.109749,
               -0.866543,
               0.409521,
               0.416991,
               -2.035112,
               0.460776,
               -1.605494,
               0.673447,
               0.26141,
               -1.101476,
               2.008415,
               -0.788617,
               0.115098,
               0.304804,
               -1.052618,
               -1.092445,
               1.774138,
               1.263819,
               -1.012634,
               1.341549,
               4.190553,
               -1.704037,
               1.097086,
               0.947398,
               -0.398297,
               -0.052221,
               0.106119,
               1.778342,
               0.613575,
               -0.840235,
               -0.150317,
               -0.929737,
               0.251122,
               -0.274101,
               -1.491832,
               -0.383975,
               -0.6326,
               -1.128919,
               -0.619208,
               1.155819,
               -0.060528,
               0.081853,
               -1.074315,
               -1.043396,
               0.241381,
               0.100028,
               -0.832605,
               -0.512395,
               -0.754542,
               -1.05786,
               -1.139089,
               1.340722,
               -0.574316,
               0.17622,
               0.631965,
               0.492677,
               -1.246925),

          LIST(-0.083652,
               -0.144418,
               -0.042423,
               0.251974,
               -0.99426,
               -0.078872,
               0.902555,
               -0.648988,
               -0.572384,
               0.064417,
               0.037802,
               0.165225,
               -1.043267,
               -0.275097,
               -0.798084,
               0.232278,
               -0.405395,
               0.090192,
               -0.188209,
               0.324431,
               -0.202102,
               -0.355018,
               0.133284,
               -0.858446,
               -0.238881,
               -0.056495,
               0.325103,
               0.218371,
               -0.017585,
               -0.01203,
               0.302979,
               -0.178918,
               -0.49849,
               -0.444558,
               0.234531,
               0.280085,
               -0.571155,
               -0.903801,
               -0.349594,
               0.648128,
               -0.608221,
               -0.534485,
               0.162846,
               0.210655,
               -0.475699,
               0.193821,
               -0.159367,
               0.431357,
               -0.249758,
               -0.115071,
               -0.202885,
               0.234833,
               -0.419427,
               0.123438,
               0.062313,
               0.245351,
               -0.813124,
               -0.152828,
               0.109052,
               0.423037,
               -0.780371,
               -0.105341,
               0.348395,
               -0.113237,
               -0.339146,
               -0.085842,
               0.264409,
               0.149207,
               -0.389778,
               0.003259,
               0.381547,
               -0.021279,
               -0.820005,
               0.164222,
               -0.17569,
               0.251628,
               -0.225226,
               -0.059143,
               0.111098,
               -0.206195,
               -0.023251,
               -0.060789,
               0.103858,
               0.166859,
               -0.370017,
               0.029358,
               0.587981,
               -0.232321,
               -0.423491,
               -0.292869,
               -0.080254,
               0.120244,
               -0.460328,
               0.295705,
               -0.056169,
               0.471125,
               -0.935766,
               0.110728,
               0.547539,
               0.053875,
               -0.80675,
               -0.171584,
               -0.541076,
               -0.063665,
               -0.449047,
               -0.030036,
               0.186917,
               0.090513,
               -1.08613,
               0.019911,
               0.695087,
               0.079363,
               -0.56081,
               -0.202913,
               0.327419,
               0.004474,
               -0.696651,
               0.649656,
               0.250298,
               0.606283,
               -0.392518,
               0.211223,
               0.101406,
               0.12346,
               -0.461618,
               0.118129,
               -0.25604,
               0.603976),
          "test_case_1");

TEST_DATA(LIST(1, 32, 8),
          LIST(1, 16, 8),
          LIST(1, 16, 4),
          LIST(),
          LIST(1, 32, 4),
          true,
          false,
          LIST(0.421005,
               0.023465,
               -0.394774,
               0.974785,
               0.512418,
               0.219203,
               -0.338684,
               1.122448,
               -0.128486,
               -0.484502,
               0.56865,
               1.332561,
               0.222876,
               0.093504,
               0.89355,
               -0.659941,
               1.187668,
               -2.086986,
               -0.42915,
               -0.198203,
               1.385841,
               0.052231,
               0.587976,
               -0.684267,
               -0.045731,
               0.629634,
               1.78197,
               -1.381788,
               0.812565,
               0.522027,
               0.013688,
               -0.070836,
               1.131118,
               0.147256,
               -0.452005,
               0.263287,
               0.489187,
               -0.710666,
               0.531863,
               -0.996062,
               0.188195,
               -0.022838,
               -0.961315,
               0.174546,
               -2.681746,
               -0.311997,
               -0.007598,
               0.152766,
               -0.700153,
               0.785022,
               0.449904,
               -0.437027,
               0.846442,
               -2.708081,
               -0.357738,
               1.859077,
               -1.122008,
               0.797016,
               -0.205318,
               0.620443,
               -1.210487,
               -0.100233,
               -0.644188,
               1.252426,
               -1.503346,
               1.685813,
               -0.655548,
               0.148169,
               0.98681,
               -1.806409,
               -0.789457,
               0.934387,
               0.819341,
               -0.359637,
               -0.394646,
               -0.040578,
               1.10817,
               1.745871,
               -0.706232,
               2.154361,
               -0.417549,
               0.724758,
               -1.090765,
               0.9193,
               0.535271,
               -0.979016,
               0.870831,
               -0.405604,
               -0.192899,
               0.242223,
               -2.103053,
               -0.234349,
               -1.273937,
               -0.334684,
               -1.239732,
               1.185672,
               1.292743,
               0.741054,
               -0.700485,
               -0.252933,
               -0.760226,
               0.68806,
               0.761746,
               0.065581,
               -0.189028,
               0.253604,
               0.17645,
               0.993091,
               0.771911,
               -0.45738,
               -0.123291,
               -0.150833,
               -1.207279,
               -1.033516,
               -0.975503,
               0.626698,
               0.50241,
               -1.377113,
               -0.788385,
               0.043618,
               -0.945737,
               0.093409,
               -0.43187,
               0.748239,
               1.084854,
               1.147015,
               0.171417,
               -0.231462,
               -1.082049,
               0.213656,
               -0.888956,
               0.489294,
               -0.722142,
               0.920915,
               -1.327819,
               -1.384117,
               -1.432893,
               -0.535934,
               0.48227,
               0.220006,
               -0.589304,
               -1.305996,
               -1.089244,
               1.762965,
               -1.320682,
               -0.014023,
               -0.26418,
               -1.665839,
               2.005492,
               0.566283,
               0.553813,
               -0.960131,
               -0.965173,
               -0.512779,
               0.814464,
               -0.662501,
               -2.681507,
               0.164813,
               -0.344629,
               -0.353064,
               0.869497,
               0.558342,
               0.504291,
               -0.331423,
               0.383466,
               -1.433365,
               -0.47628,
               0.703471,
               -0.851835,
               -1.458019,
               1.99797,
               1.234475,
               1.738404,
               -0.198748,
               0.229233,
               -0.468942,
               0.274935,
               -0.318531,
               0.395246,
               -0.463232,
               -0.0943,
               0.507692,
               -0.51417,
               -0.166324,
               -0.853083,
               0.096419,
               0.103585,
               -0.323117,
               -1.863742,
               -1.616867,
               -0.65718,
               2.499854,
               -0.282102,
               -0.990155,
               1.102401,
               1.342318,
               0.666025,
               -1.808015,
               0.555367,
               0.165921,
               -0.43009,
               -0.521742,
               0.994636,
               1.097344,
               0.381748,
               0.498743,
               0.057956,
               0.254353,
               -1.03177,
               0.13464,
               0.5135,
               0.449665,
               1.099591,
               -0.314915,
               -0.433248,
               -1.51002,
               -2.825565,
               -0.709136,
               0.22957,
               -0.60729,
               0.635989,
               -1.032047,
               0.032745,
               1.392744,
               -0.133622,
               0.692369,
               -0.420028,
               -0.483128,
               1.624416,
               1.951544,
               0.33301,
               -0.215358,
               -0.028016,
               -3.021593,
               0.119477,
               -0.560832,
               -0.293329,
               -2.270134,
               0.576507,
               -0.956194,
               0.948911,
               0.251268,
               1.487315,
               -1.638263,
               0.357951,
               -0.413316,
               0.714832,
               -0.739905,
               -0.153973,
               -1.176242,
               0.170329,
               -0.434688,
               0.747862,
               0.120337,
               -0.481574,
               1.136657),

          LIST(-0.593591,
               1.859548,
               0.249161,
               0.676157,
               0.859662,
               0.392747,
               -2.837827,
               -1.161998,
               -0.213121,
               -0.398741,
               0.893462,
               -2.473034,
               1.369548,
               -0.816652,
               0.446606,
               -1.168457,
               -0.935529,
               -1.044749,
               0.035797,
               -0.484173,
               0.566315,
               1.794253,
               -0.248206,
               0.34702,
               -0.425677,
               -0.249695,
               -0.51747,
               -1.522292,
               -1.600277,
               0.010729,
               0.760091,
               -0.080101,
               -0.477076,
               -1.59898,
               1.168583,
               0.002085,
               0.870672,
               -0.125717,
               0.559368,
               -0.60516,
               -0.344497,
               1.16437,
               -0.333677,
               0.507007,
               0.595549,
               -1.83513,
               -0.225581,
               -0.35965,
               0.774579,
               -0.877114,
               0.700943,
               1.086502,
               -0.342075,
               -1.543626,
               -1.342155,
               0.446591,
               0.216291,
               -1.071532,
               -0.509154,
               0.040005,
               0.322026,
               -0.296395,
               0.646083,
               0.320446,
               0.33697,
               1.80367,
               -0.158532,
               1.319875,
               -1.290043,
               -0.661309,
               1.088699,
               0.285606,
               -1.988428,
               -0.39131,
               1.31822,
               1.266902,
               -0.317389,
               1.194729,
               1.98206,
               -0.706244,
               1.566435,
               1.419536,
               -0.577035,
               -2.038813,
               0.437548,
               -0.442533,
               -0.484523,
               0.44865,
               -0.592259,
               0.987489,
               0.368031,
               -1.446288,
               -0.808057,
               0.428636,
               0.667097,
               0.505889,
               1.299293,
               1.374393,
               0.661116,
               0.306355,
               -1.032111,
               0.255774,
               -3.257905,
               -0.065164,
               -1.712093,
               -2.218556,
               -0.735969,
               -0.926222,
               -0.416535,
               -1.605775,
               0.461626,
               0.444886,
               0.994124,
               0.376888,
               -0.752383,
               -1.579577,
               1.539094,
               -1.349447,
               -0.906688,
               -0.215624,
               0.251347,
               0.723296,
               0.122108,
               0.295733,
               -0.045741,
               -0.580241,
               0.331587,
               1.082048),

          LIST(0.473876,
               0.230664,
               0.267298,
               0.103135,
               0.181214,
               0.406048,
               1.259755,
               -1.185046,
               -2.166379,
               -1.596702,
               -0.39181,
               1.1437,
               0.135151,
               -0.741832,
               -0.111727,
               -1.806395,
               -1.925569,
               -0.573528,
               -2.421664,
               0.155526,
               -0.865253,
               -0.72568,
               0.263178,
               0.377773,
               0.443862,
               -0.076033,
               1.137767,
               -0.515984,
               -0.209694,
               0.386404,
               -1.168237,
               0.796385,
               -0.922321,
               -0.221558,
               0.614164,
               -0.040158,
               -1.211582,
               -0.068861,
               1.510065,
               -0.926674,
               1.26152,
               -0.99538,
               -0.260887,
               0.475657,
               -0.580918,
               0.0006,
               0.125315,
               0.740747,
               0.277934,
               0.00975,
               0.107055,
               -0.581133,
               -1.070566,
               1.037663,
               0.373189,
               1.304875,
               -1.025931,
               1.433475,
               -0.976563,
               1.991798,
               0.038781,
               0.384018,
               0.806663,
               -0.776948),
          LIST(),

          LIST(0.473876,
               0.230664,
               0.267298,
               0.103135,
               0.323542,
               0.320755,
               0.7771,
               -0.558574,
               -0.562228,
               -0.243804,
               0.69271,
               -0.389583,
               -0.121944,
               -0.007565,
               0.75241,
               -0.691403,
               -0.4485,
               -0.19325,
               -0.117174,
               -0.548585,
               -0.19342,
               -0.707275,
               -0.128354,
               -1.169679,
               -0.357126,
               -0.359039,
               0.452664,
               -0.153042,
               -0.26539,
               -0.366328,
               0.081029,
               -0.130836,
               -0.368904,
               -0.301615,
               0.289083,
               0.110847,
               -1.13914,
               -0.743839,
               -0.258681,
               0.468754,
               -0.579969,
               -0.339604,
               0.236897,
               -0.026839,
               -0.070898,
               -0.441099,
               0.078919,
               -0.076731,
               -0.152301,
               -0.395264,
               0.078447,
               -0.075888,
               -0.445969,
               -0.182849,
               0.168031,
               0.008056,
               -0.683869,
               0.281779,
               0.091227,
               0.559726,
               -0.823223,
               -0.238146,
               0.166327,
               0.071748,
               -0.153953,
               -0.051779,
               0.182246,
               -0.014829,
               -0.480805,
               0.189843,
               0.295622,
               0.262282,
               -0.4639,
               0.091838,
               0.303309,
               -0.139876,
               -0.464483,
               -0.144721,
               0.21283,
               -0.309852,
               -0.127137,
               0.042333,
               0.075449,
               0.220707,
               -1.126201,
               -0.207343,
               -0.250491,
               -0.134581,
               -0.386199,
               -0.113373,
               0.007587,
               0.054589,
               -0.359018,
               0.122456,
               0.324269,
               0.107375,
               -0.648241,
               0.010124,
               0.097738,
               0.055944,
               -0.808398,
               -0.178982,
               0.183889,
               -0.091267,
               -0.446793,
               -0.004204,
               0.138438,
               0.011394,
               -0.914105,
               0.417448,
               0.214762,
               0.633307,
               -0.624983,
               -0.295893,
               0.002612,
               0.259261,
               -0.854049,
               0.581066,
               0.092587,
               0.670907,
               -0.139566,
               0.074441,
               0.275647,
               -0.216602,
               -0.680033,
               -0.03244,
               -0.118288,
               0.348928),
          "test_case_2");

TEST_DATA(LIST(1, 32, 8),
          LIST(1, 16, 8),
          LIST(1, 16, 4),
          LIST(1, 32, 16),
          LIST(1, 32, 4),
          false,
          true,

          LIST(0.421005,
               0.023465,
               -0.394774,
               0.974785,
               0.512418,
               0.219203,
               -0.338684,
               1.122448,
               -0.128486,
               -0.484502,
               0.56865,
               1.332561,
               0.222876,
               0.093504,
               0.89355,
               -0.659941,
               1.187668,
               -2.086986,
               -0.42915,
               -0.198203,
               1.385841,
               0.052231,
               0.587976,
               -0.684267,
               -0.045731,
               0.629634,
               1.78197,
               -1.381788,
               0.812565,
               0.522027,
               0.013688,
               -0.070836,
               1.131118,
               0.147256,
               -0.452005,
               0.263287,
               0.489187,
               -0.710666,
               0.531863,
               -0.996062,
               0.188195,
               -0.022838,
               -0.961315,
               0.174546,
               -2.681746,
               -0.311997,
               -0.007598,
               0.152766,
               -0.700153,
               0.785022,
               0.449904,
               -0.437027,
               0.846442,
               -2.708081,
               -0.357738,
               1.859077,
               -1.122008,
               0.797016,
               -0.205318,
               0.620443,
               -1.210487,
               -0.100233,
               -0.644188,
               1.252426,
               -1.503346,
               1.685813,
               -0.655548,
               0.148169,
               0.98681,
               -1.806409,
               -0.789457,
               0.934387,
               0.819341,
               -0.359637,
               -0.394646,
               -0.040578,
               1.10817,
               1.745871,
               -0.706232,
               2.154361,
               -0.417549,
               0.724758,
               -1.090765,
               0.9193,
               0.535271,
               -0.979016,
               0.870831,
               -0.405604,
               -0.192899,
               0.242223,
               -2.103053,
               -0.234349,
               -1.273937,
               -0.334684,
               -1.239732,
               1.185672,
               1.292743,
               0.741054,
               -0.700485,
               -0.252933,
               -0.760226,
               0.68806,
               0.761746,
               0.065581,
               -0.189028,
               0.253604,
               0.17645,
               0.993091,
               0.771911,
               -0.45738,
               -0.123291,
               -0.150833,
               -1.207279,
               -1.033516,
               -0.975503,
               0.626698,
               0.50241,
               -1.377113,
               -0.788385,
               0.043618,
               -0.945737,
               0.093409,
               -0.43187,
               0.748239,
               1.084854,
               1.147015,
               0.171417,
               -0.231462,
               -1.082049,
               0.213656,
               -0.888956,
               0.489294,
               -0.722142,
               0.920915,
               -1.327819,
               -1.384117,
               -1.432893,
               -0.535934,
               0.48227,
               0.220006,
               -0.589304,
               -1.305996,
               -1.089244,
               1.762965,
               -1.320682,
               -0.014023,
               -0.26418,
               -1.665839,
               2.005492,
               0.566283,
               0.553813,
               -0.960131,
               -0.965173,
               -0.512779,
               0.814464,
               -0.662501,
               -2.681507,
               0.164813,
               -0.344629,
               -0.353064,
               0.869497,
               0.558342,
               0.504291,
               -0.331423,
               0.383466,
               -1.433365,
               -0.47628,
               0.703471,
               -0.851835,
               -1.458019,
               1.99797,
               1.234475,
               1.738404,
               -0.198748,
               0.229233,
               -0.468942,
               0.274935,
               -0.318531,
               0.395246,
               -0.463232,
               -0.0943,
               0.507692,
               -0.51417,
               -0.166324,
               -0.853083,
               0.096419,
               0.103585,
               -0.323117,
               -1.863742,
               -1.616867,
               -0.65718,
               2.499854,
               -0.282102,
               -0.990155,
               1.102401,
               1.342318,
               0.666025,
               -1.808015,
               0.555367,
               0.165921,
               -0.43009,
               -0.521742,
               0.994636,
               1.097344,
               0.381748,
               0.498743,
               0.057956,
               0.254353,
               -1.03177,
               0.13464,
               0.5135,
               0.449665,
               1.099591,
               -0.314915,
               -0.433248,
               -1.51002,
               -2.825565,
               -0.709136,
               0.22957,
               -0.60729,
               0.635989,
               -1.032047,
               0.032745,
               1.392744,
               -0.133622,
               0.692369,
               -0.420028,
               -0.483128,
               1.624416,
               1.951544,
               0.33301,
               -0.215358,
               -0.028016,
               -3.021593,
               0.119477,
               -0.560832,
               -0.293329,
               -2.270134,
               0.576507,
               -0.956194,
               0.948911,
               0.251268,
               1.487315,
               -1.638263,
               0.357951,
               -0.413316,
               0.714832,
               -0.739905,
               -0.153973,
               -1.176242,
               0.170329,
               -0.434688,
               0.747862,
               0.120337,
               -0.481574,
               1.136657),

          LIST(-0.593591,
               1.859548,
               0.249161,
               0.676157,
               0.859662,
               0.392747,
               -2.837827,
               -1.161998,
               -0.213121,
               -0.398741,
               0.893462,
               -2.473034,
               1.369548,
               -0.816652,
               0.446606,
               -1.168457,
               -0.935529,
               -1.044749,
               0.035797,
               -0.484173,
               0.566315,
               1.794253,
               -0.248206,
               0.34702,
               -0.425677,
               -0.249695,
               -0.51747,
               -1.522292,
               -1.600277,
               0.010729,
               0.760091,
               -0.080101,
               -0.477076,
               -1.59898,
               1.168583,
               0.002085,
               0.870672,
               -0.125717,
               0.559368,
               -0.60516,
               -0.344497,
               1.16437,
               -0.333677,
               0.507007,
               0.595549,
               -1.83513,
               -0.225581,
               -0.35965,
               0.774579,
               -0.877114,
               0.700943,
               1.086502,
               -0.342075,
               -1.543626,
               -1.342155,
               0.446591,
               0.216291,
               -1.071532,
               -0.509154,
               0.040005,
               0.322026,
               -0.296395,
               0.646083,
               0.320446,
               0.33697,
               1.80367,
               -0.158532,
               1.319875,
               -1.290043,
               -0.661309,
               1.088699,
               0.285606,
               -1.988428,
               -0.39131,
               1.31822,
               1.266902,
               -0.317389,
               1.194729,
               1.98206,
               -0.706244,
               1.566435,
               1.419536,
               -0.577035,
               -2.038813,
               0.437548,
               -0.442533,
               -0.484523,
               0.44865,
               -0.592259,
               0.987489,
               0.368031,
               -1.446288,
               -0.808057,
               0.428636,
               0.667097,
               0.505889,
               1.299293,
               1.374393,
               0.661116,
               0.306355,
               -1.032111,
               0.255774,
               -3.257905,
               -0.065164,
               -1.712093,
               -2.218556,
               -0.735969,
               -0.926222,
               -0.416535,
               -1.605775,
               0.461626,
               0.444886,
               0.994124,
               0.376888,
               -0.752383,
               -1.579577,
               1.539094,
               -1.349447,
               -0.906688,
               -0.215624,
               0.251347,
               0.723296,
               0.122108,
               0.295733,
               -0.045741,
               -0.580241,
               0.331587,
               1.082048),

          LIST(0.473876,
               0.230664,
               0.267298,
               0.103135,
               0.181214,
               0.406048,
               1.259755,
               -1.185046,
               -2.166379,
               -1.596702,
               -0.39181,
               1.1437,
               0.135151,
               -0.741832,
               -0.111727,
               -1.806395,
               -1.925569,
               -0.573528,
               -2.421664,
               0.155526,
               -0.865253,
               -0.72568,
               0.263178,
               0.377773,
               0.443862,
               -0.076033,
               1.137767,
               -0.515984,
               -0.209694,
               0.386404,
               -1.168237,
               0.796385,
               -0.922321,
               -0.221558,
               0.614164,
               -0.040158,
               -1.211582,
               -0.068861,
               1.510065,
               -0.926674,
               1.26152,
               -0.99538,
               -0.260887,
               0.475657,
               -0.580918,
               0.0006,
               0.125315,
               0.740747,
               0.277934,
               0.00975,
               0.107055,
               -0.581133,
               -1.070566,
               1.037663,
               0.373189,
               1.304875,
               -1.025931,
               1.433475,
               -0.976563,
               1.991798,
               0.038781,
               0.384018,
               0.806663,
               -0.776948),

          LIST(false,
               false,
               false,
               true,
               false,
               true,
               true,
               true,
               true,
               false,
               false,
               false,
               true,
               false,
               false,
               false,
               false,
               false,
               false,
               false,
               false,
               true,
               true,
               true,
               true,
               false,
               false,
               true,
               true,
               true,
               true,
               true,
               true,
               true,
               true,
               false,
               true,
               true,
               false,
               true,
               true,
               true,
               true,
               false,
               false,
               false,
               true,
               false,
               false,
               true,
               false,
               true,
               false,
               true,
               false,
               true,
               true,
               true,
               true,
               false,
               true,
               true,
               true,
               true,
               false,
               false,
               false,
               true,
               false,
               true,
               true,
               true,
               false,
               true,
               false,
               false,
               false,
               false,
               false,
               true,
               false,
               false,
               true,
               false,
               false,
               true,
               false,
               true,
               false,
               false,
               false,
               false,
               true,
               false,
               false,
               true,
               false,
               false,
               false,
               true,
               true,
               false,
               true,
               true,
               false,
               false,
               false,
               false,
               true,
               false,
               true,
               true,
               false,
               true,
               true,
               false,
               false,
               true,
               false,
               false,
               false,
               false,
               false,
               true,
               false,
               true,
               false,
               true,
               true,
               true,
               true,
               false,
               true,
               false,
               false,
               false,
               true,
               false,
               false,
               true,
               true,
               false,
               true,
               true,
               true,
               false,
               false,
               false,
               false,
               false,
               false,
               false,
               true,
               false,
               false,
               true,
               true,
               false,
               false,
               true,
               true,
               true,
               true,
               false,
               true,
               false,
               true,
               true,
               true,
               true,
               false,
               true,
               false,
               true,
               false,
               true,
               true,
               true,
               false,
               false,
               false,
               true,
               true,
               true,
               true,
               true,
               true,
               true,
               true,
               false,
               false,
               true,
               true,
               false,
               true,
               false,
               false,
               true,
               true,
               false,
               true,
               false,
               false,
               false,
               false,
               true,
               true,
               true,
               true,
               false,
               true,
               true,
               true,
               false,
               false,
               false,
               true,
               true,
               true,
               true,
               true,
               true,
               false,
               true,
               true,
               false,
               false,
               true,
               true,
               false,
               false,
               true,
               true,
               false,
               true,
               true,
               false,
               true,
               false,
               true,
               true,
               false,
               true,
               true,
               false,
               true,
               false,
               false,
               false,
               false,
               true,
               false,
               false,
               true,
               false,
               true,
               false,
               true,
               false,
               true,
               true,
               true,
               false,
               false,
               false,
               true,
               true,
               false,
               false,
               true,
               false,
               false,
               true,
               true,
               false,
               true,
               false,
               true,
               false,
               true,
               false,
               false,
               true,
               true,
               false,
               true,
               false,
               false,
               false,
               true,
               true,
               false,
               false,
               false,
               false,
               true,
               false,
               true,
               true,
               false,
               true,
               false,
               true,
               false,
               true,
               false,
               true,
               true,
               true,
               true,
               true,
               false,
               true,
               true,
               false,
               true,
               false,
               false,
               false,
               false,
               false,
               false,
               false,
               true,
               false,
               true,
               false,
               false,
               false,
               false,
               false,
               true,
               false,
               false,
               true,
               false,
               true,
               true,
               true,
               false,
               true,
               true,
               false,
               false,
               false,
               true,
               true,
               true,
               true,
               false,
               false,
               false,
               false,
               true,
               false,
               false,
               true,
               true,
               true,
               true,
               true,
               true,
               true,
               true,
               false,
               true,
               true,
               true,
               true,
               true,
               true,
               true,
               false,
               true,
               true,
               false,
               true,
               false,
               false,
               false,
               true,
               true,
               false,
               false,
               true,
               false,
               true,
               false,
               true,
               false,
               true,
               false,
               false,
               false,
               false,
               false,
               true,
               false,
               false,
               true,
               false,
               false,
               true,
               false,
               false,
               true,
               true,
               true,
               false,
               true,
               false,
               false,
               false,
               true,
               true,
               true,
               false,
               false,
               true,
               false,
               false,
               false,
               true,
               true,
               false,
               false,
               false,
               true,
               true,
               true,
               false,
               false,
               false,
               false,
               false,
               true,
               true,
               false,
               true,
               false,
               false,
               false,
               false,
               true,
               true,
               true,
               false,
               false,
               true,
               false,
               false,
               true,
               true,
               true,
               true,
               true,
               true,
               false,
               false,
               true,
               false,
               true,
               false,
               false,
               true,
               false,
               true,
               false,
               false,
               true,
               true,
               false,
               false,
               true,
               false,
               false,
               true,
               false,
               false,
               true,
               true,
               false,
               false,
               false,
               true,
               true,
               true,
               false,
               true,
               true,
               true,
               true,
               true,
               true,
               false,
               true,
               false,
               true,
               true,
               false,
               false,
               true,
               true,
               true,
               true,
               true,
               false,
               true,
               false,
               false,
               false,
               true),

          LIST(-0.151452,
               -0.135679,
               0.239006,
               -0.164538,
               -0.434074,
               0.128942,
               0.238661,
               0.247974,
               -0.852309,
               -0.012421,
               -0.67276,
               0.34503,
               0.004365,
               0.134917,
               0.515844,
               -0.380351,
               -0.292816,
               -0.180971,
               0.279713,
               -0.204545,
               -0.203994,
               -0.076813,
               0.0195,
               -0.122038,
               -0.315249,
               0.516515,
               -0.068689,
               0.324422,
               -0.737845,
               -0.04265,
               0.328624,
               0.394012,
               -0.236799,
               0.369292,
               0.086954,
               0.300498,
               0.040792,
               0.129185,
               0.349553,
               -0.26798,
               -0.619601,
               0.071379,
               0.347302,
               0.002749,
               0.11752,
               -0.152655,
               0.2277,
               -0.063301,
               -0.713648,
               0.005333,
               0.340882,
               0.248683,
               -0.505025,
               -0.122094,
               0.11816,
               -0.057888,
               -0.748943,
               0.528792,
               -0.069714,
               0.722229,
               -0.731351,
               -0.542237,
               0.047193,
               0.416311,
               -0.670249,
               -0.250452,
               0.292605,
               -0.408065,
               -0.626114,
               0.428793,
               0.199154,
               0.688354,
               -0.335073,
               0.148766,
               0.588013,
               -0.281019,
               -0.536623,
               -0.440894,
               0.20183,
               -0.597267,
               -0.837814,
               0.429022,
               -0.397426,
               1.056941,
               -1.34513,
               -0.359021,
               -0.380967,
               -0.244262,
               -0.410373,
               0.089177,
               0.025901,
               0.191311,
               -0.430775,
               0.125963,
               0.442577,
               0.064163,
               -0.510241,
               -0.232354,
               -0.223866,
               -0.238119,
               -0.910096,
               -0.150584,
               0.642128,
               -0.070705,
               -0.61639,
               -0.108304,
               0.069615,
               0.474789,
               -0.998432,
               0.708278,
               0.120166,
               0.951546,
               -0.36252,
               -0.052486,
               -0.268467,
               0.190521,
               -0.152561,
               -0.24858,
               0.903093,
               -0.325676,
               -0.163205,
               -0.35221,
               -0.145115,
               0.201442,
               -0.661976,
               -0.306439,
               0.268772,
               0.114407),
          "test_case_3");

TEST_DATA(LIST(2, 32, 8),
          LIST(2, 16, 8),
          LIST(2, 16, 4),
          LIST(32, 16),
          LIST(2, 32, 4),
          false,
          true,

          LIST(0.421005,
               0.023465,
               -0.394774,
               0.974785,
               0.512418,
               0.219203,
               -0.338684,
               1.122448,
               -0.128486,
               -0.484502,
               0.56865,
               1.332561,
               0.222876,
               0.093504,
               0.89355,
               -0.659941,
               1.187668,
               -2.086986,
               -0.42915,
               -0.198203,
               1.385841,
               0.052231,
               0.587976,
               -0.684267,
               -0.045731,
               0.629634,
               1.78197,
               -1.381788,
               0.812565,
               0.522027,
               0.013688,
               -0.070836,
               1.131118,
               0.147256,
               -0.452005,
               0.263287,
               0.489187,
               -0.710666,
               0.531863,
               -0.996062,
               0.188195,
               -0.022838,
               -0.961315,
               0.174546,
               -2.681746,
               -0.311997,
               -0.007598,
               0.152766,
               -0.700153,
               0.785022,
               0.449904,
               -0.437027,
               0.846442,
               -2.708081,
               -0.357738,
               1.859077,
               -1.122008,
               0.797016,
               -0.205318,
               0.620443,
               -1.210487,
               -0.100233,
               -0.644188,
               1.252426,
               -1.503346,
               1.685813,
               -0.655548,
               0.148169,
               0.98681,
               -1.806409,
               -0.789457,
               0.934387,
               0.819341,
               -0.359637,
               -0.394646,
               -0.040578,
               1.10817,
               1.745871,
               -0.706232,
               2.154361,
               -0.417549,
               0.724758,
               -1.090765,
               0.9193,
               0.535271,
               -0.979016,
               0.870831,
               -0.405604,
               -0.192899,
               0.242223,
               -2.103053,
               -0.234349,
               -1.273937,
               -0.334684,
               -1.239732,
               1.185672,
               1.292743,
               0.741054,
               -0.700485,
               -0.252933,
               -0.760226,
               0.68806,
               0.761746,
               0.065581,
               -0.189028,
               0.253604,
               0.17645,
               0.993091,
               0.771911,
               -0.45738,
               -0.123291,
               -0.150833,
               -1.207279,
               -1.033516,
               -0.975503,
               0.626698,
               0.50241,
               -1.377113,
               -0.788385,
               0.043618,
               -0.945737,
               0.093409,
               -0.43187,
               0.748239,
               1.084854,
               1.147015,
               0.171417,
               -0.231462,
               -1.082049,
               0.213656,
               -0.888956,
               0.489294,
               -0.722142,
               0.920915,
               -1.327819,
               -1.384117,
               -1.432893,
               -0.535934,
               0.48227,
               0.220006,
               -0.589304,
               -1.305996,
               -1.089244,
               1.762965,
               -1.320682,
               -0.014023,
               -0.26418,
               -1.665839,
               2.005492,
               0.566283,
               0.553813,
               -0.960131,
               -0.965173,
               -0.512779,
               0.814464,
               -0.662501,
               -2.681507,
               0.164813,
               -0.344629,
               -0.353064,
               0.869497,
               0.558342,
               0.504291,
               -0.331423,
               0.383466,
               -1.433365,
               -0.47628,
               0.703471,
               -0.851835,
               -1.458019,
               1.99797,
               1.234475,
               1.738404,
               -0.198748,
               0.229233,
               -0.468942,
               0.274935,
               -0.318531,
               0.395246,
               -0.463232,
               -0.0943,
               0.507692,
               -0.51417,
               -0.166324,
               -0.853083,
               0.096419,
               0.103585,
               -0.323117,
               -1.863742,
               -1.616867,
               -0.65718,
               2.499854,
               -0.282102,
               -0.990155,
               1.102401,
               1.342318,
               0.666025,
               -1.808015,
               0.555367,
               0.165921,
               -0.43009,
               -0.521742,
               0.994636,
               1.097344,
               0.381748,
               0.498743,
               0.057956,
               0.254353,
               -1.03177,
               0.13464,
               0.5135,
               0.449665,
               1.099591,
               -0.314915,
               -0.433248,
               -1.51002,
               -2.825565,
               -0.709136,
               0.22957,
               -0.60729,
               0.635989,
               -1.032047,
               0.032745,
               1.392744,
               -0.133622,
               0.692369,
               -0.420028,
               -0.483128,
               1.624416,
               1.951544,
               0.33301,
               -0.215358,
               -0.028016,
               -3.021593,
               0.119477,
               -0.560832,
               -0.293329,
               -2.270134,
               0.576507,
               -0.956194,
               0.948911,
               0.251268,
               1.487315,
               -1.638263,
               0.357951,
               -0.413316,
               0.714832,
               -0.739905,
               -0.153973,
               -1.176242,
               0.170329,
               -0.434688,
               0.747862,
               0.120337,
               -0.481574,
               1.136657,
               -0.593591,
               1.859548,
               0.249161,
               0.676157,
               0.859662,
               0.392747,
               -2.837827,
               -1.161998,
               -0.213121,
               -0.398741,
               0.893462,
               -2.473034,
               1.369548,
               -0.816652,
               0.446606,
               -1.168457,
               -0.935529,
               -1.044749,
               0.035797,
               -0.484173,
               0.566315,
               1.794253,
               -0.248206,
               0.34702,
               -0.425677,
               -0.249695,
               -0.51747,
               -1.522292,
               -1.600277,
               0.010729,
               0.760091,
               -0.080101,
               -0.477076,
               -1.59898,
               1.168583,
               0.002085,
               0.870672,
               -0.125717,
               0.559368,
               -0.60516,
               -0.344497,
               1.16437,
               -0.333677,
               0.507007,
               0.595549,
               -1.83513,
               -0.225581,
               -0.35965,
               0.774579,
               -0.877114,
               0.700943,
               1.086502,
               -0.342075,
               -1.543626,
               -1.342155,
               0.446591,
               0.216291,
               -1.071532,
               -0.509154,
               0.040005,
               0.322026,
               -0.296395,
               0.646083,
               0.320446,
               0.33697,
               1.80367,
               -0.158532,
               1.319875,
               -1.290043,
               -0.661309,
               1.088699,
               0.285606,
               -1.988428,
               -0.39131,
               1.31822,
               1.266902,
               -0.317389,
               1.194729,
               1.98206,
               -0.706244,
               1.566435,
               1.419536,
               -0.577035,
               -2.038813,
               0.437548,
               -0.442533,
               -0.484523,
               0.44865,
               -0.592259,
               0.987489,
               0.368031,
               -1.446288,
               -0.808057,
               0.428636,
               0.667097,
               0.505889,
               1.299293,
               1.374393,
               0.661116,
               0.306355,
               -1.032111,
               0.255774,
               -3.257905,
               -0.065164,
               -1.712093,
               -2.218556,
               -0.735969,
               -0.926222,
               -0.416535,
               -1.605775,
               0.461626,
               0.444886,
               0.994124,
               0.376888,
               -0.752383,
               -1.579577,
               1.539094,
               -1.349447,
               -0.906688,
               -0.215624,
               0.251347,
               0.723296,
               0.122108,
               0.295733,
               -0.045741,
               -0.580241,
               0.331587,
               1.082048,
               0.473876,
               0.230664,
               0.267298,
               0.103135,
               0.181214,
               0.406048,
               1.259755,
               -1.185046,
               -2.166379,
               -1.596702,
               -0.39181,
               1.1437,
               0.135151,
               -0.741832,
               -0.111727,
               -1.806395,
               -1.925569,
               -0.573528,
               -2.421664,
               0.155526,
               -0.865253,
               -0.72568,
               0.263178,
               0.377773,
               0.443862,
               -0.076033,
               1.137767,
               -0.515984,
               -0.209694,
               0.386404,
               -1.168237,
               0.796385,
               -0.922321,
               -0.221558,
               0.614164,
               -0.040158,
               -1.211582,
               -0.068861,
               1.510065,
               -0.926674,
               1.26152,
               -0.99538,
               -0.260887,
               0.475657,
               -0.580918,
               0.0006,
               0.125315,
               0.740747,
               0.277934,
               0.00975,
               0.107055,
               -0.581133,
               -1.070566,
               1.037663,
               0.373189,
               1.304875,
               -1.025931,
               1.433475,
               -0.976563,
               1.991798,
               0.038781,
               0.384018,
               0.806663,
               -0.776948,
               1.379879,
               1.175937,
               0.336587,
               -0.10363,
               0.840433,
               -0.841822,
               -0.927159,
               -0.8826,
               -1.175637,
               0.841034,
               1.813048,
               0.510312,
               -0.446955,
               0.05884,
               0.873361,
               0.173936,
               1.864106,
               1.97434,
               0.136933,
               0.125996,
               0.694331,
               -0.058914,
               -1.70357,
               -0.862171,
               -2.270788,
               1.78583,
               0.046916,
               -0.060745,
               -1.157244,
               -0.040764,
               -1.29,
               -1.729559,
               -0.024036,
               -0.957502,
               -0.065361,
               1.259783,
               -1.586219,
               -0.773324,
               0.104026,
               -1.608258,
               -1.029088,
               -1.111893,
               -0.795348,
               1.376287,
               1.175728,
               0.295585,
               -0.559497,
               0.816903,
               0.490996,
               -1.004804,
               0.316465,
               -1.374675,
               2.225095,
               -0.454799,
               1.307002,
               -1.182276,
               -0.363367,
               -0.364746,
               -2.288659,
               1.429768,
               -0.558253,
               -0.345671,
               -1.231811,
               -1.144122),

          LIST(0.669048,
               1.253411,
               0.964786,
               -0.868919,
               1.369943,
               -0.997654,
               -0.170686,
               -0.584766,
               0.695652,
               -1.477151,
               1.02304,
               0.985546,
               0.359905,
               0.739994,
               0.900393,
               -0.415888,
               1.027304,
               1.642111,
               -0.256148,
               1.705449,
               0.742366,
               -0.416792,
               0.343785,
               -2.173308,
               0.642656,
               0.499735,
               0.062629,
               0.288781,
               -0.624428,
               0.363097,
               1.337925,
               -0.285583,
               2.525335,
               0.959702,
               0.225902,
               -2.084965,
               -0.014898,
               0.885027,
               -0.47383,
               -0.179998,
               0.886109,
               0.570699,
               0.731007,
               0.018857,
               -0.523009,
               0.676521,
               -1.619693,
               -0.039683,
               2.40891,
               -1.140949,
               -0.809734,
               1.249487,
               0.395291,
               -0.040929,
               1.436312,
               0.254105,
               1.390493,
               0.178458,
               0.601491,
               -0.386157,
               1.450433,
               -2.261711,
               1.784683,
               -0.2757,
               -0.543906,
               -0.182736,
               -0.300199,
               1.063606,
               -0.219486,
               1.222885,
               0.215142,
               0.723555,
               -0.70155,
               1.141434,
               0.818791,
               -0.229134,
               -0.446136,
               0.676219,
               -2.81724,
               -0.997954,
               -0.439221,
               0.314049,
               1.440436,
               0.84844,
               1.31731,
               0.846217,
               1.068469,
               0.654644,
               -1.03753,
               0.287643,
               2.043062,
               -0.379139,
               -1.328668,
               0.045873,
               0.407716,
               -0.908022,
               -0.527893,
               -1.6525,
               -2.140695,
               1.461692,
               -0.136412,
               1.910536,
               -1.033257,
               -1.244956,
               -0.187394,
               -0.73124,
               1.40393,
               -0.69688,
               0.189305,
               -0.535513,
               0.118834,
               -0.606871,
               -0.627851,
               -0.586313,
               0.989582,
               0.8274,
               0.150993,
               -0.206132,
               -0.079015,
               -0.152751,
               -0.221602,
               -0.053469,
               -0.007423,
               -0.626135,
               -0.362088,
               0.653484,
               1.65072,
               -0.212789,
               -0.590367,
               0.256564,
               -0.880581,
               0.304221,
               1.264364,
               -2.332636,
               -0.811072,
               1.587373,
               -1.701726,
               0.568617,
               0.11007,
               1.671443,
               0.067642,
               -0.197029,
               -0.479122,
               -0.671735,
               -0.180798,
               0.188966,
               -0.492004,
               -0.752294,
               -0.193513,
               0.044766,
               0.550427,
               0.507952,
               -0.519835,
               -0.732491,
               -1.245198,
               -0.570378,
               -1.330052,
               -0.367631,
               0.820434,
               -0.095065,
               -0.057456,
               0.641705,
               1.816095,
               -0.968649,
               -0.019481,
               0.161527,
               0.59692,
               -0.984294,
               -0.028295,
               0.551226,
               -1.761453,
               -1.238583,
               0.219222,
               -1.036977,
               0.604598,
               -0.814539,
               -0.708069,
               0.881866,
               -0.688482,
               -0.965745,
               0.095615,
               -1.052471,
               0.547147,
               0.02881,
               1.284175,
               0.209008,
               -0.167884,
               0.449842,
               0.297009,
               -0.396592,
               0.065111,
               -0.376004,
               0.885518,
               -0.197528,
               1.094456,
               -0.601968,
               -0.442131,
               -1.159578,
               0.532128,
               0.020932,
               3.001178,
               -0.460484,
               -1.397502,
               1.83208,
               0.187805,
               -0.23562,
               0.838223,
               0.140732,
               -0.057661,
               -1.013909,
               0.124978,
               -0.214147,
               0.75221,
               -0.151406,
               0.739292,
               -0.934012,
               1.263142,
               0.669529,
               -0.788527,
               -0.265766,
               0.197106,
               -0.743707,
               0.481133,
               0.043761,
               0.389874,
               -0.494359,
               -0.259289,
               1.164965,
               1.277088,
               0.051879,
               0.127648,
               -0.163788,
               1.015134,
               -1.760256,
               -1.665681,
               0.868838,
               -0.128328,
               1.883712,
               -0.290864,
               0.215321,
               -0.504164,
               0.365189,
               -0.393319,
               -0.14162,
               -1.465254,
               -0.067447,
               -0.367196,
               1.558587,
               -0.099484,
               -0.481428,
               1.678571,
               -2.114676,
               0.464851,
               0.229711,
               0.317546,
               0.43636),

          LIST(0.0409,
               0.077869,
               1.408737,
               -1.260114,
               0.136004,
               -0.9457,
               0.091768,
               0.224163,
               0.647066,
               1.019154,
               0.628868,
               -0.508198,
               0.307728,
               0.103725,
               -0.067719,
               0.682923,
               -1.1048,
               -1.053823,
               -0.959663,
               0.639096,
               -1.224353,
               -1.220632,
               1.967998,
               0.148358,
               0.523769,
               -0.308843,
               -0.849387,
               -0.030058,
               -1.177523,
               0.679043,
               0.777809,
               1.11273,
               0.352417,
               -3.087523,
               0.847945,
               0.288509,
               -0.615618,
               -0.92017,
               -0.409843,
               -0.865585,
               -0.193532,
               -1.06601,
               -0.083865,
               -0.268913,
               0.959423,
               -0.11591,
               -0.015457,
               -0.404683,
               -0.466523,
               -0.001316,
               -0.086794,
               -1.26243,
               1.060387,
               -0.456323,
               -0.581024,
               1.240103,
               -0.744158,
               0.447459,
               0.07531,
               0.318939,
               -0.988132,
               -0.763545,
               1.899572,
               0.170358,
               -1.031292,
               0.222966,
               -1.314343,
               0.306081,
               -0.643629,
               0.501331,
               -1.744817,
               0.387248,
               2.146114,
               1.718246,
               0.130584,
               0.464741,
               -0.711587,
               1.094991,
               0.245252,
               -0.559175,
               0.521254,
               0.646981,
               -1.49254,
               0.356029,
               0.967818,
               -1.066056,
               -0.477828,
               -1.352633,
               0.105447,
               -1.494098,
               0.310285,
               0.013237,
               0.41057,
               -0.031352,
               -0.285622,
               -0.187492,
               0.864737,
               0.128305,
               -0.87878,
               0.236555,
               0.395837,
               1.548257,
               -0.886905,
               -0.054923,
               0.593815,
               0.908347,
               1.046968,
               -1.189381,
               -1.332375,
               -0.093362,
               1.054859,
               0.930966,
               1.240918,
               0.411876,
               1.476291,
               -0.598442,
               -2.064574,
               0.94047,
               -2.713606,
               0.520082,
               1.709873,
               2.493311,
               0.918902,
               -2.126874,
               -0.306373,
               -0.08538,
               0.570416,
               0.145999),

          LIST(true,
               false,
               false,
               true,
               true,
               true,
               true,
               true,
               true,
               false,
               false,
               true,
               false,
               true,
               false,
               false,
               true,
               false,
               true,
               false,
               false,
               true,
               true,
               false,
               false,
               true,
               false,
               false,
               true,
               false,
               false,
               true,
               true,
               false,
               false,
               false,
               true,
               true,
               true,
               false,
               true,
               true,
               true,
               true,
               true,
               true,
               false,
               true,
               false,
               true,
               true,
               false,
               false,
               true,
               true,
               true,
               true,
               true,
               false,
               true,
               false,
               false,
               false,
               true,
               false,
               true,
               false,
               false,
               false,
               true,
               true,
               false,
               false,
               false,
               false,
               true,
               true,
               true,
               false,
               true,
               true,
               true,
               false,
               true,
               false,
               false,
               true,
               true,
               true,
               true,
               false,
               false,
               false,
               true,
               true,
               false,
               false,
               true,
               true,
               true,
               false,
               true,
               true,
               false,
               false,
               false,
               true,
               false,
               false,
               false,
               false,
               true,
               true,
               false,
               true,
               true,
               false,
               false,
               true,
               true,
               true,
               false,
               true,
               false,
               false,
               false,
               false,
               true,
               true,
               false,
               true,
               true,
               false,
               false,
               false,
               true,
               true,
               false,
               true,
               false,
               false,
               false,
               true,
               true,
               true,
               true,
               true,
               true,
               false,
               true,
               true,
               false,
               true,
               false,
               true,
               false,
               false,
               true,
               true,
               false,
               false,
               false,
               false,
               false,
               false,
               true,
               false,
               false,
               false,
               false,
               false,
               true,
               true,
               false,
               true,
               false,
               false,
               false,
               true,
               false,
               true,
               true,
               true,
               false,
               false,
               false,
               false,
               false,
               true,
               true,
               false,
               false,
               true,
               true,
               true,
               true,
               false,
               false,
               true,
               false,
               true,
               false,
               false,
               true,
               true,
               true,
               true,
               true,
               false,
               false,
               true,
               true,
               true,
               true,
               true,
               false,
               true,
               false,
               false,
               false,
               false,
               false,
               true,
               false,
               true,
               true,
               false,
               true,
               false,
               false,
               false,
               true,
               false,
               true,
               true,
               false,
               true,
               false,
               false,
               false,
               true,
               false,
               true,
               true,
               true,
               false,
               true,
               false,
               false,
               false,
               false,
               false,
               true,
               false,
               false,
               true,
               true,
               false,
               false,
               true,
               false,
               true,
               true,
               true,
               true,
               true,
               false,
               true,
               true,
               false,
               false,
               true,
               false,
               true,
               false,
               false,
               true,
               false,
               false,
               false,
               true,
               false,
               false,
               true,
               false,
               true,
               true,
               true,
               false,
               true,
               false,
               true,
               false,
               false,
               true,
               false,
               false,
               true,
               true,
               false,
               true,
               true,
               false,
               false,
               true,
               true,
               false,
               false,
               false,
               true,
               false,
               false,
               true,
               true,
               false,
               true,
               true,
               true,
               false,
               false,
               true,
               false,
               false,
               false,
               true,
               true,
               false,
               false,
               false,
               false,
               true,
               false,
               true,
               false,
               true,
               false,
               false,
               false,
               true,
               true,
               true,
               false,
               true,
               false,
               true,
               true,
               false,
               true,
               false,
               true,
               true,
               false,
               true,
               true,
               false,
               false,
               true,
               false,
               false,
               true,
               true,
               true,
               true,
               false,
               false,
               true,
               true,
               true,
               true,
               false,
               true,
               true,
               true,
               true,
               true,
               false,
               true,
               false,
               true,
               false,
               true,
               true,
               true,
               false,
               true,
               false,
               false,
               false,
               true,
               true,
               true,
               true,
               true,
               false,
               false,
               true,
               true,
               false,
               true,
               false,
               true,
               false,
               false,
               false,
               false,
               true,
               true,
               false,
               false,
               false,
               true,
               true,
               false,
               true,
               true,
               true,
               false,
               true,
               false,
               true,
               false,
               false,
               true,
               false,
               true,
               false,
               false,
               false,
               false,
               true,
               true,
               true,
               false,
               true,
               false,
               false,
               true,
               true,
               true,
               false,
               true,
               false,
               false,
               false,
               true,
               true,
               false,
               true,
               true,
               true,
               false,
               true,
               false,
               true,
               false,
               false,
               false,
               true,
               true,
               true,
               false,
               false,
               false,
               false,
               true,
               true,
               false,
               false,
               false,
               true,
               false,
               true,
               true,
               true,
               true,
               true,
               false,
               true,
               true,
               false,
               true,
               true,
               true,
               true,
               true,
               false,
               true,
               false,
               true,
               false,
               false,
               true,
               true,
               false,
               true,
               true,
               false,
               true,
               false,
               true,
               true,
               false,
               false,
               true,
               true,
               false,
               false,
               true,
               false,
               false,
               true,
               false),

          LIST(-0.017236,
               -0.900354,
               0.260498,
               0.23171,
               0.010104,
               0.00995,
               0.394082,
               -0.464958,
               0.102693,
               -0.477699,
               -0.282414,
               -0.138641,
               -0.227665,
               -0.506639,
               0.533587,
               -0.067717,
               0.160969,
               -0.492607,
               -0.06346,
               0.033372,
               0.114235,
               -0.714619,
               -0.015874,
               0.232971,
               -0.211142,
               -0.613084,
               0.490475,
               -0.018434,
               0.065559,
               -1.29658,
               0.649121,
               0.095878,
               -0.210256,
               -0.017992,
               0.809999,
               -0.201751,
               -0.005952,
               -1.144173,
               0.354886,
               0.075559,
               -0.398586,
               -0.018972,
               0.216208,
               -0.444585,
               -0.509064,
               -0.403835,
               0.145251,
               -0.450355,
               0.183185,
               -0.319722,
               0.243739,
               -0.001282,
               0.04817,
               -0.174896,
               0.352192,
               0.034446,
               -0.423934,
               -0.176657,
               0.122925,
               -0.623279,
               -0.192093,
               0.031825,
               0.255085,
               -0.659314,
               -0.432408,
               -0.51021,
               0.04902,
               -0.863734,
               0.165269,
               -0.662088,
               0.16257,
               0.324737,
               0.122049,
               -0.605359,
               -0.258614,
               0.017603,
               0.362117,
               -0.556176,
               0.098033,
               -0.283982,
               -0.543506,
               -0.475029,
               0.625276,
               -0.328219,
               0.231303,
               -0.190044,
               -0.093032,
               0.311852,
               -0.348208,
               -0.776085,
               0.079472,
               0.123737,
               -0.162161,
               -0.845619,
               0.424053,
               0.247852,
               -0.512336,
               0.146017,
               0.415348,
               0.379278,
               -0.084997,
               -0.459649,
               0.22614,
               0.016097,
               0.079204,
               -0.520597,
               0.103324,
               0.532809,
               0.173226,
               -1.173693,
               0.416611,
               0.454879,
               -0.158327,
               -0.686965,
               0.341531,
               -0.293918,
               -0.170185,
               -0.046674,
               0.241676,
               0.692086,
               -0.236541,
               -0.410599,
               0.183315,
               -0.09798,
               -0.248415,
               -0.739676,
               0.158355,
               0.407517,
               -0.210147,
               -0.030486,
               -0.738294,
               0.091534,
               0.132002,
               -0.277494,
               0.267868,
               -0.123791,
               -0.504867,
               0.414924,
               -0.695278,
               0.025656,
               0.525385,
               -0.140178,
               -0.048409,
               -0.078446,
               -0.165786,
               0.041192,
               0.037952,
               0.001887,
               -0.348723,
               0.198468,
               -0.843031,
               0.064852,
               0.108523,
               0.361779,
               -0.195959,
               -0.20708,
               0.194609,
               0.416994,
               -0.009474,
               -0.167986,
               0.664956,
               1.042263,
               0.002927,
               -0.549866,
               -0.06974,
               0.679592,
               -0.689884,
               -0.153436,
               0.113741,
               -0.180349,
               0.413801,
               -0.458907,
               0.794358,
               0.075282,
               -0.451592,
               -0.009917,
               0.10499,
               0.822064,
               -0.239321,
               -0.24905,
               0.352995,
               0.51105,
               0.066433,
               -0.57704,
               -0.283103,
               0.458159,
               -0.567619,
               -0.074793,
               0.083282,
               0.269614,
               -0.233525,
               0.090051,
               0.207866,
               0.151645,
               0.013723,
               -0.147793,
               -0.581982,
               0.576479,
               -1.558984,
               0.310235,
               -0.531741,
               0.524977,
               -0.299566,
               -0.223335,
               -0.234256,
               0.349927,
               -0.783451,
               0.179062,
               0.769871,
               0.656751,
               -0.208758,
               -0.661818,
               -0.141979,
               1.128172,
               -0.86171,
               0.01494,
               0.220779,
               1.048286,
               -0.434681,
               -0.459317,
               0.388554,
               0.40813,
               -0.060449,
               -0.437193,
               0.160263,
               -0.032002,
               -0.172294,
               -0.029505,
               0.157617,
               0.311631,
               0.402018,
               -0.484789,
               -0.042337,
               0.284329,
               -0.656908,
               -0.03646,
               -0.170277,
               0.084997,
               -1.186127,
               0.141168,
               -0.192134,
               0.737029,
               -0.404803,
               -0.253337,
               -0.700122,
               0.682354,
               -1.278244,
               0.048052,
               0.170995,
               0.186625,
               0.049625,
               0.148464,
               -0.289709,
               0.710651,
               -0.496057,
               -0.118809),
          "test_case_4");